package com.example.mydemo.utils;

import android.app.Activity;
import android.content.pm.PackageManager;

import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class CheckPermissionS {
    public static boolean startObserver = false;

    //检查多个权限
    public static boolean checkPermissions(Activity act, String[] permissions, int requestcode) {
        //6.0以后需要判断版本,6.0以后采用动态权限管理
        if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.M) {
            return false;
        }
        int check = PackageManager.PERMISSION_GRANTED;//权限默认是开的
        for (String permission : permissions) {
            //遍历权限字符串数组，checkSelfPermission检测是否都有权限
            check = ContextCompat.checkSelfPermission(act, permission);
            if (check != PackageManager.PERMISSION_GRANTED) {
                //有一个不允许，都是不允许，授权是0，不授权是-1
                break;
            }
        }
        //请求码，是一个整数标识符，用于在回调中识别这次权限请求。当请求结果返回时，可以用这个请求码来确定是哪一次请求的结果。
        if (check != PackageManager.PERMISSION_GRANTED) {
            //弹窗确认需不需要开权限
            ActivityCompat.requestPermissions(act, permissions, requestcode);
            //此时弹窗根据用户选择结果---->之后跳转到onRequestPermissionsResult处理
            return false;//当前没权限
        }
        return true;
    }

    //检查是否有权限了
    public static Boolean checkGrant(int[] grantResults) {
        for (int result : grantResults) {
            //没权限
            if (result != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
        return true;
    }

}

